package com.bagua.sbbcshop.entity;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import uw.dm.DataEntity;
import uw.dm.annotation.ColumnMeta;
import uw.dm.annotation.TableMeta;

/**
 * userInfo实体类
 * user_info
 * 
 * @author xhou
 * @version $Revision: 1.00 $ $Date: 2019-10-01 17:02:52
 */
@TableMeta(tableName="user_info",tableType="table")
@ApiModel(value = "user_info的实体类", description = "user_info的实体类")
public class UserInfo implements DataEntity,Serializable{


	/**
	 * 用户id
	 */
	@ColumnMeta(columnName="user_id", dataType="int", dataSize=10, nullable=false, primaryKey=true, autoIncrement=true)
	@ApiModelProperty(value = "用户id", dataType="int")
	private int userId;

	/**
	 * 
	 */
	@ColumnMeta(columnName="user_name", dataType="String", dataSize=255, nullable=true)
	@ApiModelProperty(value = "", dataType="String")
	private String userName;

	/**
	 * 
	 */
	@ColumnMeta(columnName="mobile", dataType="String", dataSize=20, nullable=false)
	@ApiModelProperty(value = "", dataType="String")
	private String mobile;

	/**
	 * 运营商
	 */
	@ColumnMeta(columnName="cust_id", dataType="int", dataSize=10, nullable=true)
	@ApiModelProperty(value = "运营商", dataType="int")
	private int custId;

	/**
	 * 密码
	 */
	@ColumnMeta(columnName="password", dataType="String", dataSize=255, nullable=false)
	@ApiModelProperty(value = "密码", dataType="String")
	private String password;

	/**
	 * 0停用，1启用
	 */
	@ColumnMeta(columnName="state", dataType="int", dataSize=10, nullable=true)
	@ApiModelProperty(value = "0停用，1启用", dataType="int")
	private int state;

	/**
	 * 创建时间
	 */
	@ColumnMeta(columnName="create_date", dataType="java.util.Date", dataSize=19, nullable=true)
	@ApiModelProperty(value = "创建时间", dataType="java.util.Date")
	private java.util.Date createDate;

	/**
	 * 启用时间
	 */
	@ColumnMeta(columnName="start_date", dataType="java.util.Date", dataSize=19, nullable=true)
	@ApiModelProperty(value = "启用时间", dataType="java.util.Date")
	private java.util.Date startDate;

	/**
	 * 结束时间
	 */
	@ColumnMeta(columnName="end_date", dataType="java.util.Date", dataSize=19, nullable=true)
	@ApiModelProperty(value = "结束时间", dataType="java.util.Date")
	private java.util.Date endDate;

	/**
	 * 
	 */
	@ColumnMeta(columnName="openid", dataType="String", dataSize=200, nullable=true)
	@ApiModelProperty(value = "", dataType="String")
	private String openid;

	/**
	 * 用户定义的登陆账号
	 */
	@ColumnMeta(columnName="login_id", dataType="String", dataSize=200, nullable=true)
	@ApiModelProperty(value = "用户定义的登陆账号", dataType="String")
	private String loginId;

	/**
	 * 0普通用户，1会员，2高级会员，3管理员，4 超级管理员
	 */
	@ColumnMeta(columnName="manager", dataType="int", dataSize=10, nullable=true)
	@ApiModelProperty(value = "0普通用户，1会员，2高级会员，3管理员，4 超级管理员", dataType="int")
	private int manager;

	/**
	 * qq号
	 */
	@ColumnMeta(columnName="qq", dataType="int", dataSize=10, nullable=true)
	@ApiModelProperty(value = "qq号", dataType="int")
	private int qq;

	/**
	 * 电子邮箱
	 */
	@ColumnMeta(columnName="email", dataType="String", dataSize=255, nullable=true)
	@ApiModelProperty(value = "电子邮箱", dataType="String")
	private String email;

	/**
	 * 轻量级状态下更新列表list.
	 */
	public transient Set<String> UPDATED_COLUMN = null;

    /**
	 * 更新的信息.
	 */
    private transient StringBuilder UPDATED_INFO = null;

	/**
	 * 获得更改的字段列表.
	 */
    @Override
	public Set<String> GET_UPDATED_COLUMN() {
        return UPDATED_COLUMN;
	}

	/**
     * 得到_INFO.
	 */
    @Override
	public String GET_UPDATED_INFO() {
        if (this.UPDATED_INFO == null) {
			return null;
		} else {
            return this.UPDATED_INFO.toString();
		}
	}

    /**
     * 清理_INFO和UPDATED_COLUMN信息.
     */
    public void CLEARUPDATED_INFO() {
        UPDATED_COLUMN = null;
        UPDATED_INFO = null;
	}
	
	/**
	 * 初始化set相关的信息.
	 */
	private void _INIT_UPDATE_INFO() {
        this.UPDATED_COLUMN = new HashSet
        <String>();
            this.UPDATED_INFO = new StringBuilder("表user_info主键\"" + 
            this.userId+ "\"更新为:\r\n");
	}	


	/**
	 * 获得用户id。
	 */
	public int getUserId(){
		return this.userId;
	}

	/**
	 * 获得。
	 */
	public String getUserName(){
		return this.userName;
	}

	/**
	 * 获得。
	 */
	public String getMobile(){
		return this.mobile;
	}

	/**
	 * 获得运营商。
	 */
	public int getCustId(){
		return this.custId;
	}

	/**
	 * 获得密码。
	 */
	public String getPassword(){
		return this.password;
	}

	/**
	 * 获得0停用，1启用。
	 */
	public int getState(){
		return this.state;
	}

	/**
	 * 获得创建时间。
	 */
	public java.util.Date getCreateDate(){
		return this.createDate;
	}

	/**
	 * 获得启用时间。
	 */
	public java.util.Date getStartDate(){
		return this.startDate;
	}

	/**
	 * 获得结束时间。
	 */
	public java.util.Date getEndDate(){
		return this.endDate;
	}

	/**
	 * 获得。
	 */
	public String getOpenid(){
		return this.openid;
	}

	/**
	 * 获得用户定义的登陆账号。
	 */
	public String getLoginId(){
		return this.loginId;
	}

	/**
	 * 获得0普通用户，1会员，2高级会员，3管理员，4 超级管理员。
	 */
	public int getManager(){
		return this.manager;
	}

	/**
	 * 获得qq号。
	 */
	public int getQq(){
		return this.qq;
	}

	/**
	 * 获得电子邮箱。
	 */
	public String getEmail(){
		return this.email;
	}


	/**
	 * 设置用户id。
	 */
	public void setUserId(int userId){
		if ((!String.valueOf(this.userId).equals(String.valueOf(userId)))) {
			if (this.UPDATED_COLUMN == null) {
				_INIT_UPDATE_INFO();
			}
			this.UPDATED_COLUMN.add("user_id");
			this.UPDATED_INFO.append("user_id:\"" + this.userId+ "\"=>\""
                + userId + "\"\r\n");
			this.userId = userId;
		}
	}

	/**
	 * 设置。
	 */
	public void setUserName(String userName){
		if ((!String.valueOf(this.userName).equals(String.valueOf(userName)))) {
			if (this.UPDATED_COLUMN == null) {
				_INIT_UPDATE_INFO();
			}
			this.UPDATED_COLUMN.add("user_name");
			this.UPDATED_INFO.append("user_name:\"" + this.userName+ "\"=>\""
                + userName + "\"\r\n");
			this.userName = userName;
		}
	}

	/**
	 * 设置。
	 */
	public void setMobile(String mobile){
		if ((!String.valueOf(this.mobile).equals(String.valueOf(mobile)))) {
			if (this.UPDATED_COLUMN == null) {
				_INIT_UPDATE_INFO();
			}
			this.UPDATED_COLUMN.add("mobile");
			this.UPDATED_INFO.append("mobile:\"" + this.mobile+ "\"=>\""
                + mobile + "\"\r\n");
			this.mobile = mobile;
		}
	}

	/**
	 * 设置运营商。
	 */
	public void setCustId(int custId){
		if ((!String.valueOf(this.custId).equals(String.valueOf(custId)))) {
			if (this.UPDATED_COLUMN == null) {
				_INIT_UPDATE_INFO();
			}
			this.UPDATED_COLUMN.add("cust_id");
			this.UPDATED_INFO.append("cust_id:\"" + this.custId+ "\"=>\""
                + custId + "\"\r\n");
			this.custId = custId;
		}
	}

	/**
	 * 设置密码。
	 */
	public void setPassword(String password){
		if ((!String.valueOf(this.password).equals(String.valueOf(password)))) {
			if (this.UPDATED_COLUMN == null) {
				_INIT_UPDATE_INFO();
			}
			this.UPDATED_COLUMN.add("password");
			this.UPDATED_INFO.append("password:\"" + this.password+ "\"=>\""
                + password + "\"\r\n");
			this.password = password;
		}
	}

	/**
	 * 设置0停用，1启用。
	 */
	public void setState(int state){
		if ((!String.valueOf(this.state).equals(String.valueOf(state)))) {
			if (this.UPDATED_COLUMN == null) {
				_INIT_UPDATE_INFO();
			}
			this.UPDATED_COLUMN.add("state");
			this.UPDATED_INFO.append("state:\"" + this.state+ "\"=>\""
                + state + "\"\r\n");
			this.state = state;
		}
	}

	/**
	 * 设置创建时间。
	 */
	public void setCreateDate(java.util.Date createDate){
		if ((!String.valueOf(this.createDate).equals(String.valueOf(createDate)))) {
			if (this.UPDATED_COLUMN == null) {
				_INIT_UPDATE_INFO();
			}
			this.UPDATED_COLUMN.add("create_date");
			this.UPDATED_INFO.append("create_date:\"" + this.createDate+ "\"=>\""
                + createDate + "\"\r\n");
			this.createDate = createDate;
		}
	}

	/**
	 * 设置启用时间。
	 */
	public void setStartDate(java.util.Date startDate){
		if ((!String.valueOf(this.startDate).equals(String.valueOf(startDate)))) {
			if (this.UPDATED_COLUMN == null) {
				_INIT_UPDATE_INFO();
			}
			this.UPDATED_COLUMN.add("start_date");
			this.UPDATED_INFO.append("start_date:\"" + this.startDate+ "\"=>\""
                + startDate + "\"\r\n");
			this.startDate = startDate;
		}
	}

	/**
	 * 设置结束时间。
	 */
	public void setEndDate(java.util.Date endDate){
		if ((!String.valueOf(this.endDate).equals(String.valueOf(endDate)))) {
			if (this.UPDATED_COLUMN == null) {
				_INIT_UPDATE_INFO();
			}
			this.UPDATED_COLUMN.add("end_date");
			this.UPDATED_INFO.append("end_date:\"" + this.endDate+ "\"=>\""
                + endDate + "\"\r\n");
			this.endDate = endDate;
		}
	}

	/**
	 * 设置。
	 */
	public void setOpenid(String openid){
		if ((!String.valueOf(this.openid).equals(String.valueOf(openid)))) {
			if (this.UPDATED_COLUMN == null) {
				_INIT_UPDATE_INFO();
			}
			this.UPDATED_COLUMN.add("openid");
			this.UPDATED_INFO.append("openid:\"" + this.openid+ "\"=>\""
                + openid + "\"\r\n");
			this.openid = openid;
		}
	}

	/**
	 * 设置用户定义的登陆账号。
	 */
	public void setLoginId(String loginId){
		if ((!String.valueOf(this.loginId).equals(String.valueOf(loginId)))) {
			if (this.UPDATED_COLUMN == null) {
				_INIT_UPDATE_INFO();
			}
			this.UPDATED_COLUMN.add("login_id");
			this.UPDATED_INFO.append("login_id:\"" + this.loginId+ "\"=>\""
                + loginId + "\"\r\n");
			this.loginId = loginId;
		}
	}

	/**
	 * 设置0普通用户，1会员，2高级会员，3管理员，4 超级管理员。
	 */
	public void setManager(int manager){
		if ((!String.valueOf(this.manager).equals(String.valueOf(manager)))) {
			if (this.UPDATED_COLUMN == null) {
				_INIT_UPDATE_INFO();
			}
			this.UPDATED_COLUMN.add("manager");
			this.UPDATED_INFO.append("manager:\"" + this.manager+ "\"=>\""
                + manager + "\"\r\n");
			this.manager = manager;
		}
	}

	/**
	 * 设置qq号。
	 */
	public void setQq(int qq){
		if ((!String.valueOf(this.qq).equals(String.valueOf(qq)))) {
			if (this.UPDATED_COLUMN == null) {
				_INIT_UPDATE_INFO();
			}
			this.UPDATED_COLUMN.add("qq");
			this.UPDATED_INFO.append("qq:\"" + this.qq+ "\"=>\""
                + qq + "\"\r\n");
			this.qq = qq;
		}
	}

	/**
	 * 设置电子邮箱。
	 */
	public void setEmail(String email){
		if ((!String.valueOf(this.email).equals(String.valueOf(email)))) {
			if (this.UPDATED_COLUMN == null) {
				_INIT_UPDATE_INFO();
			}
			this.UPDATED_COLUMN.add("email");
			this.UPDATED_INFO.append("email:\"" + this.email+ "\"=>\""
                + email + "\"\r\n");
			this.email = email;
		}
	}

	/**
	 * 重载toString方法.
	 */
    @Override
	public String toString() {
		StringBuilder sb = new StringBuilder();
		sb.append("user_id:\"" + this.userId + "\"\r\n");
		sb.append("user_name:\"" + this.userName + "\"\r\n");
		sb.append("mobile:\"" + this.mobile + "\"\r\n");
		sb.append("cust_id:\"" + this.custId + "\"\r\n");
		sb.append("password:\"" + this.password + "\"\r\n");
		sb.append("state:\"" + this.state + "\"\r\n");
		sb.append("create_date:\"" + this.createDate + "\"\r\n");
		sb.append("start_date:\"" + this.startDate + "\"\r\n");
		sb.append("end_date:\"" + this.endDate + "\"\r\n");
		sb.append("openid:\"" + this.openid + "\"\r\n");
		sb.append("login_id:\"" + this.loginId + "\"\r\n");
		sb.append("manager:\"" + this.manager + "\"\r\n");
		sb.append("qq:\"" + this.qq + "\"\r\n");
		sb.append("email:\"" + this.email + "\"\r\n");
		return sb.toString();
	}

}
